package cn.it.dao;

import cn.it.pojo.CheckGroup;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface CheckGroupDao {
    /**
     * 新增检查组
     *
     * @param checkGroup
     */
    void add(CheckGroup checkGroup);

    /**
     * 新增检查组和检查项
     *
     * @param map
     */
    void setCheckGroupAndCheckItem(Map map);

    /**
     * 查询所有检查组
     *
     * @return
     */
    Page<CheckGroup> selectByCondition(String queryString);

    /**
     * 根据ID查询检查组
     *
     * @param id
     * @return
     */
    CheckGroup findById(Integer id);

    /**
     * 根据检查组ID查询关联的多个检查项ID，查询中间关系表
     *
     * @param id
     * @return
     */
    List<Integer> findCheckItemIdsByCheckGroupId(Integer id);

    /**
     * 修改检查组基本信息
     *
     * @param checkGroup
     */
    void edit(CheckGroup checkGroup);

    /**
     * 清除检查组关联的检查项
     *
     * @param id
     */
    void deleteCheckGroupId(Integer id);

    /**
     * 查询所有检查组
     * @return
     */
    List<CheckGroup> findAll();

  /* @Select("select * from t_checkgroup where id in (select checkgroup_id from t_setmeal_checkgroup where setmeal_id=#{setmealId})")
   @Results({
           @Result(id = true,column = "id",property = "id"),
           @Result(property = "checkItems",
           column = "id",
           many = @Many(select ="cn.it.dao.checkItemDao.findCheckItemByCheckGroupId" ))
   })
   List<CheckGroup> findCheckGroupBySetmealId(Integer id);*/

}
